Ключ | keyКлюч – это строка специального формата, которая содержит перечень морфологических свойств. Формат морфологического ключа описан ниже. Основное назначение ключа – описание морфологических свойств слов. Ключи используются при парсинге (в процессе анализа введённой команды) и при синтезе выводимого текста (в конструкторе слова с помощью ключей слову присваивается форма). Ключ может применяться без кавычек в линвгистических операциях. Структура лингвистического ключаКлюч – это лексема, которая начинается со знака #, за которым следует перечень морфологических свойств. Порядок следования морфологических ключей в перечне морфологических свойств произвольный. Каждое морфологическое свойство представляется двумя символами. Первый символ – значение свойства, второй символ – имя свойства. Для удобства рекомендуется для первого символа свойства использовать заглавную букву. #ИпЕч #ЕчИп #РпМчНд В данном примере первый ключ и второй ключ идентичны между собой. Оба ключа определяют именительный падеж (Ип) и единственное число (Еч). Третий ключ состоит из трёх свойств – свойства родительный падеж (Рп), свойства множественное число (Мч) и свойства неодушевлённое (Нд). Определяющим является имя морфологического свойства (второй символ). Необходимо отметить, что некоторые значения свойств (первый символ) для разных морфологических свойств имеют одинаковое обозначение (например: Мч – множественное число и Мр – мужской род). Морфологический ключ читается слева направо, правые свойства имеют больший приоритет. В частности, если указать два разных несовместных ключа, левый ключ будет отброшен. #ИпЕчРп В данном примере свойства Ип и Рп не совместны между собой. Свойство Рп стоит левее, следовательно, у него более высокий приоритет. Свойство Ип будет замещено и в результате ключ будет аналогичен следующему – #ЕчРп. Подбор лингвистического ключаПодбор лингвистического ключа производится в случаях, когда из заданного списка ключей необходимо выбрать ключ, наиболее похожий на ключ-образец. Эта операция выполняется, в частности, при подборе словоформы при синтезе текста. Подбор лингвистического ключа выполняется следующим образом: 1. Выполняется сравнение свойств ключа и свойств в образце. При этом: 1.1. Если в ключе есть то же свойство что и в образце, и значения свойств совпадают – вес ключа увеличивается. 1.2. Если в ключе есть то же свойство что и в образце, но значения свойств не совпадают – ключ отбрасывается. 1.3. Если в ключе есть свойство, которого нет в образце – вес ключ уменьшается. 2. Выбирается ключ с максимальным весом. При этом: 2.1. Если найдено несколько ключей с одинаковым весом – берётся ключ, ближайший к началу списка. 2.2. Допускается вариант когда ни один ключ из списка не подходит.
Пример:
$пруд
{
key = #МрНд
keydef = #ИпЕч
#ВпЕч = "пру‘д"
#ВпМч = "пруды‘"
#ДпЕч = "пру‘ду"
#ДпМч = "пруда‘м"
#ИпЕч = "пру‘д"
#ИпМч = "пруды‘"
#ПпЕч = "пру‘де"
#ПпЕчМу = "пруду‘"
#ПпМч = "пруда‘х"
#РпЕч = "пру‘да"
#РпМч = "прудо‘в"
#ТпЕч = "пру‘дом"
#ТпМч = "пруда‘ми"
}
$река
{
key = ЖрНд
keydef = ИпЕч
#ВпЕч = "ре‘ку"
#ВпМч = "ре‘ки"
#ДпЕч = "реке‘"
#ДпМч = "ре‘кам"
#ИпЕч = "река‘"
#ИпМч = "ре‘ки"
#ПпЕч = "реке‘"
#ПпМч = "ре‘ках"
#РпЕч = "реки‘"
#РпМч = "ре‘к"
#ТпЕч = "реко‘й"
#ТпЕчПс = "реко‘ю"
#ТпМч = "ре‘ками"
}
Требуется получить фразу с местным падежом – "я сижу в {_водоём*ПпМуЕч}". Здесь ПпМуЕч – ключ-образец, с которым будут сравниваться ключи форм слова, подставленного в переменную _водоём. При этом Пп – предложный падеж, Му – уточнение места (местный падеж является вариантом предложного падежа), Еч – единственное число. Для слова ’пруд’ это будет form ПпЕчМу = пруду‘. В результате будет сформирована фраза ’я сижу в пруду’. Для слова ’река’ не определена форма местного падежа, поэтому наиболее близким ключом является ключ формы предложного падежа – form ПпЕч = реке‘. В результате будет сформирована фраза ’я сижу в реке’. Подбор ключей к слову в процессе парсингаПодбор ключей к заданной форме слова – операция, выполняющаяся при парсинге. При этом во введённой команде слово уже стоит в какой-то форме. Из описания слова к этой форме подбираются ключи. К токену "река"в команде "сиди в реке"прикрепятся 2 ключа – ДпЕч и ПпЕч. Далее эта команда сравнивается с описанием атрибутов функций. Допустим есть функции: действие (сидеть Акт*Пф, место Где*Пп) ... Ключ токена ДпЕч для этой функции откидывается сразу, ключ ПпЕч подходит, и функция проверяется дальше. Если бы ключа ПпЕч у токена не было, функция (сидеть Акт*Пф, место Где*Пп) была бы сразу отбракована, и парсер перешел бы к следующей функции. Смотрите такжеСлово, лингвистические операции, используемые ключи |
to do: Проверить корректность. Отформатировать. Дополнить. |